mw/com: Add Requirements for the Method extension of Fields#174
mw/com: Add Requirements for the Method extension of Fields#174gdadunashvili wants to merge 1 commit intoeclipse-score:mainfrom
Conversation
b888aa4 to
e54d974
Compare
e54d974 to
30f7e7d
Compare
30f7e7d to
52bafd0
Compare
| } | ||
|
|
||
| ScoreReq.CompReq GetMethodSignature { | ||
| description=""" The signature of the `Get` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Get()`.""" |
There was a problem hiding this comment.
| description=""" The signature of the `Get` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Get()`.""" | |
| description=""" The signature of the `Get` method shall be: `score::Result<MethodReturnTypePtr<SampleDataType>> Get()`.""" |
| } | ||
|
|
||
| ScoreReq.CompReq SetMethodSignature { | ||
| description=""" The signature of the `Set` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" |
There was a problem hiding this comment.
| description=""" The signature of the `Set` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" | |
| description=""" The signature of the `Set` method shall be: `score::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" |
| } | ||
|
|
||
| ScoreReq.CompReq AllocateMethodSignature { | ||
| description="""The signature of the `Allocate()` method shall be: `bmw::Result<impl::MethodInArgPtr<SampleDataType>> Allocate()`.""" |
There was a problem hiding this comment.
| description="""The signature of the `Allocate()` method shall be: `bmw::Result<impl::MethodInArgPtr<SampleDataType>> Allocate()`.""" | |
| description="""The signature of the `Allocate()` method shall be: `score::Result<impl::MethodInArgPtr<SampleDataType>> Allocate()`.""" |
| } | ||
|
|
||
| ScoreReq.CompReq ZeroCopySetMethodSignature { | ||
| description="""The signature of the `Set` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" |
There was a problem hiding this comment.
| description="""The signature of the `Set` method shall be: `bmw::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" | |
| description="""The signature of the `Set` method shall be: `score::Result<MethodReturnTypePtr<SampleDataType>> Set(MethodInArgPtr<SampleDataType>)`""" |
|
|
||
|
|
||
| ScoreReq.CompReq RegisterGetHandlerSignature { | ||
| description=""" The signature of the `RegisterGetHandler` method shall be: `bmw::ResultBlank RegisterGetHandler(GetHandlerType)`""" |
There was a problem hiding this comment.
| description=""" The signature of the `RegisterGetHandler` method shall be: `bmw::ResultBlank RegisterGetHandler(GetHandlerType)`""" | |
| description=""" The signature of the `RegisterGetHandler` method shall be: `score::ResultBlank RegisterGetHandler(GetHandlerType)`""" |
There was a problem hiding this comment.
In my view, the requirement for RegisterGetHandler on the Skeleton side is not needed. The RegisterGetHandler function will not be exposed to the user, as it is managed internally by LoLa. Therefore, it should be considered an implementation detail.
| } | ||
|
|
||
| ScoreReq.CompReq RegisterSetHandlerSignature { | ||
| description=""" The signature of the `RegisterSetHandler` method shall be: `bmw::ResultBlank RegisterSetHandler(SetHandlerType)`""" |
There was a problem hiding this comment.
| description=""" The signature of the `RegisterSetHandler` method shall be: `bmw::ResultBlank RegisterSetHandler(SetHandlerType)`""" | |
| description=""" The signature of the `RegisterSetHandler` method shall be: `score::ResultBlank RegisterSetHandler(SetHandlerType)`""" |
| } | ||
|
|
||
| ScoreReq.FeatReq Field { | ||
| description = "A field is part of a communication interface and has a name and a data type, as wall as special getter and setter methods. The producer can assign a value to it. Consumers can subscribe to value-changed fields of the element or poll unseen, cached fields. Consumers can also retrieve the current value of the field through its getter or set a new value to it through the setter method." |
There was a problem hiding this comment.
A field is a component of a communication interface and is defined by a name and a data type, along with dedicated getter and setter methods. The producer has the ability to assign a value to the field. Consumers can either subscribe to receive notifications when the field’s value changes or poll the cached values of fields that have not yet been seen. Additionally, consumers can retrieve the current value of the field using the getter method or update the field’s value through the setter method.
|
|
||
| ScoreReq.CompReq NoSupportForNotificationInSharedMemoryBinding { | ||
|
|
||
| description = """For the field implementation in our shared-memory-binding implementation, we shall ignore the setting for "support for a notification" specified in [[FieldGetAndSetInterfaceDefinition]]. Since, in the shared-memory-binding implementation support for an update notification does not imply any performance drawbacks, opposed to e.g. a network binding.""" |
There was a problem hiding this comment.
For the field implementation in the shared-memory-binding implementation, the setting for "support for a notification" specified in [[FieldGetAndSetInterfaceDefinition]] shall be ignored. This is because, in the shared-memory-binding implementation, support for update notifications does not imply any performance drawbacks, unlike, for example, a network binding.
|
|
||
|
|
||
| ScoreReq.CompReq GetMethodReturnValue { | ||
| description="""It shall return the field value, which has been updated last by the provider in success case in the form of a `MethodReturnTypePtr` to the value.""" |
There was a problem hiding this comment.
It shall return the provider's most recently updated field value as a MethodReturnTypePtr upon success.
| } | ||
|
|
||
| ScoreReq.CompReq SetMethodReturnValue { | ||
| description="""`Set` method shall return the field value, which has been updated last by the provider in success case in the form of a MethodReturnTypePtr to the value.""" |
There was a problem hiding this comment.
The Set method shall return the provider’s latest updated field value as a MethodReturnTypePtr on success
| section "Field_member_representation_at_the_Skeleton_side" { | ||
|
|
||
| ScoreReq.CompReq RegisterGetHandlerOnlyIfEnabledInInterfaceDefinition { | ||
| description="""It shall provide a public `RegisterGetHandler` method only in the case, that 'support for a Get()' has been enabled in the underlying interface definition (see [[FieldGetAndSetInterfaceDefinition]])""" |
There was a problem hiding this comment.
As of the last sync, LoLa handles Get functionality internally.
On a Get call from a proxy, Skeleton returns the latest sample. Has this approach changed?
If not, a public RegisterGetHandler is unnecessary.
| } | ||
|
|
||
| ScoreReq.CompReq SetHandlerTypeDefinition { | ||
| description="""It is mandatory to register a `SetHandler` for a `SkeletonField` instance. If the user has not registered a handler before calling `Offer()` on the enclosing skeleton, the call to `Offer()` shall fail with an error.""" |
There was a problem hiding this comment.
only if Set is enabled in the interface Definition. right?
| ScoreReq.CompReq SetHandlerTypeDefinition { | ||
| description="""After the user provided `SetHandler` has returned, the (potentially updated) field value has to: | ||
| - be stored as the latest value. | ||
| - if enabled, notifier for the updated value has to be called to inform subscribers of the field about the updated value. |
There was a problem hiding this comment.
what does if enable means?
where is it enabled?
what if the value is not changed?
issue: